home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
oleo-1_4.lha
/
oleo-1.4
/
input.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-30
|
3KB
|
105 lines
#ifndef INPUTH
#define INPUTH
/* Copyright (C) 1993 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this software; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* t. lord Mon Feb 15 14:11:13 1993 */
/* Display-generic updating logic for the input area. */
#ifdef __STDC__
typedef int (*text_measure) (char * str, int len);
#else
typedef int (*text_measure) ();
#endif
/* These are for the field REDRAW_NEEDED */
#define NO_REDRAW -2
#define FULL_REDRAW -1
struct input_view
{
/* If this is less than 0, see the #defines above.
* >= 0, this is the index of a character in the
* input string. All characters at that index and
* greater need to be redrawn.
*/
int redraw_needed;
/* These are provided by io-{curses,x11} and tell how to convert
* strings to widths.
*/
text_measure prompt_metric;
text_measure input_metric;
/* If the currently mapped keymap has a prompt, the display of that
* prompt takes precedence.
*/
char * keymap_prompt;
char * expanded_keymap_prompt;
/* This is the width of either the keymap_prompt or the input text
* prompt, whichever is current (0 if neither is).
*/
int prompt_wid;
/* The parameters below are a cache. If this flag is true,
* the cache is known to be wrong.
*/
int must_fix_input;
struct line * input_area; /* The text editted in the input area or 0. */
char * prompt;
int visibility_begin; /* Index of first visible char or 0. */
int visibility_end; /* Index of last visible char or 0. */
int input_cursor; /* Index of the cursor position or 0. */
int vis_wid; /* This is the width of the visible text
* with extra space for the cursor, if it
* happens to be past the end of the string.
*/
/* A command_arg can specify an info buffer which should be displayed
* while prompting for that arg.
*/
struct info_buffer * current_info;
int info_pos; /* In the current info, the first vis. line */
int info_redraw_needed; /* != 0 if redraw needed */
};
#ifdef __STDC__
extern void iv_fix_input (struct input_view * this_iv);
extern void iv_move_cursor (struct input_view * this_iv);
extern void iv_erase (struct input_view * this_iv, int len);
extern void iv_insert (struct input_view * this_iv, int len);
extern void iv_over (struct input_view * this_iv, int len);
#else
extern void iv_fix_input ();
extern void iv_move_cursor ();
extern void iv_erase ();
extern void iv_insert ();
extern void iv_over ();
#endif
#endif /* INPUTH */